package com.ksyun.campus.metaserver.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;

import java.util.Map;

/**
 * @author sxt
 * @version 1.0
 * @description TODO
 * @date 2023/8/9 21:21
 */
@Data
@ToString
@AllArgsConstructor
public class DataServerInfo extends ServerInfo{

    private int capacity;

    private int usedCapacity;
    /**
     * 添加该节点上保存的所有文件副本信息，以fileNameId作为key
     * @return 线程安全的ConcurrentHashMap（考虑到列表可能被多个事件集中回调，从而产生并发问题）
     */
    private Map<String, ReplicaData> allReplicaDataMap;

    public double freeCapacityRatio() {
        return 1 - (double) usedCapacity / capacity;
    }

}
